|
1
|
|
|
const IdVerification = require('./src/services/IdVerification'); |
|
2
|
|
|
const services = require('./src/config/services'); |
|
3
|
|
|
const { isString } = require('./src/classes/Helper'); |
|
4
|
|
|
const { idValues } = require('./src/config/constants'); |
|
5
|
|
|
const { countries } = require('./src/classes/Helper'); |
|
6
|
|
|
|
|
7
|
|
|
class SabiCustomer{ |
|
8
|
|
|
|
|
9
|
|
|
async verifyID(requestData = {}, handler = null){ |
|
10
|
|
|
|
|
11
|
|
|
//Checks whether Handler is valid |
|
12
|
|
|
if(handler != null){ |
|
|
|
|
|
|
13
|
|
|
if(!isString(handler)){ |
|
14
|
|
|
return { 'error' : handler + ' is not a valid string' }; |
|
15
|
|
|
} |
|
16
|
|
|
|
|
17
|
|
|
const pipes = [ |
|
18
|
|
|
services.credequity.client.toUpperCase(), |
|
19
|
|
|
services.appruve.client.toUpperCase(), |
|
20
|
|
|
services.smile.client.toUpperCase() |
|
21
|
|
|
]; |
|
22
|
|
|
|
|
23
|
|
|
if(!pipes.includes(handler.toUpperCase())){ |
|
24
|
|
|
return { 'error' : handler + ' is not a valid handler' }; |
|
25
|
|
|
} |
|
26
|
|
|
} |
|
27
|
|
|
|
|
28
|
|
|
if(Object.keys(requestData).length <= 0 ){ |
|
29
|
|
|
return { 'error' : 'Payload must not be empty'}; |
|
30
|
|
|
} |
|
31
|
|
|
|
|
32
|
|
|
const idValue = Object.values(idValues); |
|
33
|
|
|
|
|
34
|
|
|
//Checks for valid ID Types |
|
35
|
|
|
if(!idValue.includes(requestData.id_type)){ |
|
36
|
|
|
return { 'error' : requestData.id_type + ' is not supported or not a valid ID TYPE, supported types: ' + idValue }; |
|
37
|
|
|
} |
|
38
|
|
|
|
|
39
|
|
|
const supportedCountries = Object.values(countries); |
|
40
|
|
|
|
|
41
|
|
|
//Checks for supported country |
|
42
|
|
|
if(!supportedCountries.includes(requestData.country)){ |
|
43
|
|
|
return { 'error' : requestData.country + ' is not a valid country or not supported, supported countries are: ' + supportedCountries }; |
|
44
|
|
|
} |
|
45
|
|
|
|
|
46
|
|
|
const idVerification = new IdVerification(requestData); |
|
47
|
|
|
|
|
48
|
|
|
return await idVerification.verify(handler); |
|
49
|
|
|
|
|
50
|
|
|
} |
|
51
|
|
|
} |
|
52
|
|
|
|
|
53
|
|
|
module.exports = SabiCustomer; |